<?php
/**
 * 消息管理类
 * 消息全局记录与传递,只有静态成员，在MJie，过滤器中传递，在View中调用
 * 
 * ============================================================================
 * 版权所有: (c) 2009-2011，<UEShop Inc>，并保留所有权利。
 * 网站地址: http://www.ueshop.cn
 * ----------------------------------------------------------------------------
 * 这不是一个自由软件！您只能在不用于商业目的的前提下对程序代码进行修改和使用；
 * 不允许对程序代码以任何形式任何目的的再发布。
 * ============================================================================
 *
 * @author      cmpan
 * @copyright   Copyright (c) 2009-2011 UEShop Inc. (http://www.ueshop.cn)
 * @license     http://www.ueshop.cn/1_0.txt
 */
final class UE_Msgs {
	private static $_msgs = array(
	        /*
	        'ok' => array(), 
	        'warning' => array(), 
	        'error' => array(),
	        */
	    );
	
	/**
	 * 是否有错误提示消息
	 *
	 * @return bool
	 */
	public static function hasErr() {
		return empty(self::$_msgs['error'])? false : true;		
	}

	/**
	 * 是否有正确提示消息
	 *
	 * @return bool
	 */	
	public static function hasOK() {
		return empty(self::$_msgs['ok'])? false : true;		
	}	
	
	/**
	 * 是否有警告提示消息
	 *
	 * @return bool
	 */	
	public static function hasWarn() {
		return empty(self::$_msgs['warning'])? false : true;		
	}
	
	/**
	 * 获取所有消息
	 *
	 * @return array
	 */
	public static function getMsgs() {
		return self::$_msgs;
	}
	
	/**
	 * 获取错误提示消息
	 *
	 * @return array
	 */
	public static function getErrs() {
		return self::$_msgs['error'];
	}
	
	/**
	 * 获取正确提示消息
	 *
	 * @return array
	 */
	public static function getOKs() {
		return self::$_msgs['ok'];
	}
	
	/**
	 * 获取警告提示消息
	 *
	 * @return array
	 */
	public static function getWarns() {
		return self::$_msgs['warning'];
	}
	
	/**
	 * 设置错误提示消息
	 *
	 * @param string|array $msg 消息
	 */
	public static function setErr($msg) {
		self::_setMsg('error', $msg);
	}
	
	/**
	 * 设置正确提示消息
	 * 
	 * @param string|array $msg 消息
	 */
	public static function setOK($msg) {
		self::_setMsg('ok', $msg);
	}
	
	/**
	 * 设置警告提示消息
	 *
	 * @param string|array $msg 消息
	 */
	public static function setWarn($msg) {
		self::_setMsg('warning', $msg);
	}
	
	/**
	 * 设置消息
	 *
	 * @param string $type 消息类型
	 * @param string|array $msg
	 */
	private static function _setMsg($type, $msg)  {
		if (is_array($msg)) {
			foreach ($msg as $m) {
				self::$_msgs[$type][] = $m;
			}
		} else {
		    self::$_msgs[$type][] = $msg;
		}
	}
}